package io;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;

/**
 * java将流按照读写的数据单位划分为字节流与字符流
 * java.io.InputStream和OutputStream是所有字节流的超类，最小读写单位都是byte
 * java.io.Reader和Writer是所有字符流的超类，最小读写单位是char
 *
 * 转换流
 * 转换流是常用的字符流实现类，我们实际应用中不会直接操作这对流，但是在流连接中他们是
 * 重要的一环，负责衔接字节流与字符流，在中间将读写的数据单位进行转换，字符与字节的转换。
 * 相当于现实中的"转换器"的作用
 */
public class OSWDemo {
    public static void main(String[] args) throws IOException {
        //使用转换流测试字符流读写文本的相关操作，这里先测试写出文本
        FileOutputStream fos = new FileOutputStream("osw.txt");
        //通常使用转换流时还可以明确字符集
        OutputStreamWriter osw = new OutputStreamWriter(fos, StandardCharsets.UTF_8);

        osw.write("我怀念的是无话不说, 我怀念的是一起做梦. ");
        osw.write("我怀念的是争吵以后还是想要爱你的冲动. ");

        System.out.println("输出完毕");
        osw.close();
    }
}
